package cn.kk.service;

import cn.kk.model.auth.req.LoginReq;
import cn.kk.model.auth.req.RegisterReq;
import cn.kk.model.auth.vo.CaptchaVO;
import cn.kk.model.auth.vo.TokenAuthVO;
import jakarta.servlet.http.HttpServletRequest;


/**
 * @author kinoko
 */
public interface AuthService {

    /**
     * 验证码生成
     * @return 验证码视图
     */
    CaptchaVO buildCaptcha();

    /**
     * 新用户注册
     * @param req 用户注册信息
     * @return 执行结果
     */
    boolean register(RegisterReq req);

    /**
     * 用户登录
     * @param loginInfo 用户信息
     * @param request   请求对象
     * @return 认证信息
     */
    TokenAuthVO login(LoginReq loginInfo, HttpServletRequest request);

    /**
     * 刷新token
     * @return token
     */
    TokenAuthVO refresh();
}